#ifndef _CLAUSE_H_
#define _CLAUSE_H_
 
#include "var.h"
#define MAX_TOT_VAR  100000

typedef struct _clause{
    int var_num;
    _bool true_val;
    _bool true_val_available;
    variable* vars;
}clause;

#define cls_copy(dest, src) (dest)->var_num = (src)->var_num; \
    (dest)->vars = (src)->vars;\
    (dest)->true_val = (src)->true_val;\
    (dest)->true_val_available = (src)->true_val_available;
/**
 * return if clause is (confirmed) true. 
 */
_bool clause_is_true(clause* cl);

_bool clause_is_false(clause* cl);

void print_clause(clause* cls);

clause* new_clause_from(clause* cls);
void delete_clause(clause* cls);
#endif
